计算机基础知识

您所在的位置:网站首页 计算机的基本知识 入门 计算机基础知识

计算机基础知识

2023-06-26 17:58| 来源: 网络整理| 查看: 265

参考链接:https://blog.csdn.net/ChineseSoftware/article/details/123176978 https://www.cnblogs.com/8023-CHD/p/11067141.html https://blog.csdn.net/qq_42033567/article/details/108088514

http与https的区别 HTTP 的URL以http:// 开头,而HTTPS 的URL 以https:// 开头HTTP的默认端口是80,而HTTPS的默认端口是443在OSI网络模型中,HTTP工作于应用层,而HTTPS的安全传输机制工作在传输层HTTP是明文传输,HTTPS 在 HTTP 的基础上加入了 SSL 协议,SSL 依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。HTTP的连接很简单,是无状态的。HTTPS是由SSL+HTTP构建的可进行加密传输、身份认证的网络协议,比HTTP安全。 Linux常用命令 cd 命令切换目录 ls 命令查看当前目录下的文件 -l:列出长数据串,包含文件的属性与权限数据等 -a:列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用) pwd 当前目录的绝对路径 touch 创建文件 mkdir 创建文件夹 mv 移动文件、目录 rm 用于删除文件或目录 vim 用于文件编辑 cat 用于查看文本文件内容 tar 对文件进行压缩与解压缩 压缩:tar -zcf 解压缩:tar -zxf kill 终止进程 chmod 改变文件权限 r:读权限 w:写权限 x:可执行权限 u:用户 g:同组用户 o:其他用户 a:所有用户 chmod xxx 文件名称 每一位分别表示不同类的权限,每一位的范围为0-7,表示读写执行的权限。 tcp和udp的区别 连接方面,TCP是面向连接的,UDP是无连接的。TCP是面向字节流的,发送数据时会将数据分解为多个小的数据报文进行发送;UDP是基于数据报的,发送数据时会直接打上UDP头将整个报文发送出去。TCP只支持一对一通讯;而UDP支持一对一、一对多、多对一、多对多通讯。TCP要求实时性低、准确度高;UDP要求实时性高、准确度低。TCP头部20-60字节,UDP头部8个字节。TCP提供可靠的传输服务,通过TCP连接传输的数据,无差错、不重复、按序到达;UDP尽最大努力进行交付,不保证可靠交付。 基于TCP的应用层协议有:SMTP(简单邮件传输协议)、TELNET(远程登录服务协议)、HTTP(超文本传输协议)、FTP(文件传输协议)。 基于UDP的应用层协议:NFS(网络文件系统)、SNMP(简单网络管理协议)、DNS(主域名称系统)、TFTP(简单文件传输协议)。 cookie和session区别 cookie通过在客户端记录信息确定用户身份,session通过在服务器端记录信息确定用户身份。cookie不是很安全,考虑安全应当使用session。因为session会在一定时间保存在服务器上,当访问增多,会比较占用服务器性能,考虑到减轻服务器性能方面,应当使用cookie。单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。可以考虑将登陆信息等重要信息存放为 session,其他信息如果需要保留,可以放在 cookie 中。 进程和线程的区别

1.根本区别:进程是操作系统进行资源分配的最小单位,线程是操作系统进行任务调度的最小单位。 2.从属关系不同:进程中包含了线程,线程属于进程。 3.开销不同:进程的创建、销毁和切换的开销都远大于线程。 4.拥有资源不同:每个进程都有自己的内存空间,一个进程中的线程会共享这些内存空间。 5.CPU利用率不同:进程的CPU利用率较低,因为上下文切换开销较大,而线程的CPU利用率高,上下文的切换速度快。 6.操纵者不同:进程的操纵者一般是操作系统,线程的操纵者一般是编程人员。

线程有哪几种状态

线程通常都有5种状态,创建、就绪、运行、阻塞和死亡。 创建: 在生成线程对象,并没有调用该对象的start方法,这时线程处于创建状态。 就绪: 当调用了线程对象的start方法后,该线程就进入了就绪状态,当调用了线程对象的start方法后,该线程就进入了就绪状态。此时线程调度程序还没有把该线程设置为当前线程。当线程从等待或者睡眠中回来后也会处于就绪状态。 运行: 线程调度程序将处于就绪状态的线程设置为当前线程,此时线程就进入了运行状态,开始执行run函数中的代码。 阻塞: 线程正在运行时,因为等待某个资源被暂停进入阻塞状态。sleep、suspend等方法都能导致线程阻塞。 死亡: 如果一个线程的run方法执行结束,该线程就会死亡。

http的三次握手和四次挥手 三次握手

在这里插入图片描述

第一次握手:客户端发送一个SYN报文,并指明客户端的初始化序列号,此时客户端处于SYN-SENT状态。第二次握手:服务器收到客户端的SYN报文后,会以自己的SYN报文作为应答,也指定自己的初始化序列号,将客户端的seq+1作为ack的值,表示自己收到了客户端的seq,并请求下一个seq,此时服务器处于SYN-RCVD状态。第三次握手:客户端收到SYN报文后,会发送一个ACK报文,将ack设为服务器的seq+1,表示已经收到服务器的SYN报文,并发送下一个seq,此时客户端初一ESTABLISHED状态,服务器收到ACK报文后,也处于ESTABLISHED状态,此时,双方已建立起了连接。 为什么要三次握手? 通过三次握手可以保证双方的发送和接收能力正常,确保与列好同步,以及防止旧的失效连接请求产生误解,从而建立可靠的链接。确认双方的发送和接收能力:第一次握手客户端发送SYN报文段到服务器,服务器接收到SYN报文段后,确认客户端的发送能力和自己的接收能力正常。确保客户端和服务器的序列号同步:在第二次握手时,服务器发送了带有SYN/ACK标志的报文段,其中ACK确认号字段的值为客户端的初始序列号加1,同时,服务器也选择了自己的初始序列号。这样,客户端和服务器都知道对方的初始序列号,并可以同步它们的序列号。防止已失效的连接请求报文段产生连接:考虑这样一种情况,客户端发送了一个连接请求报文段,但因网络延迟等原因导致该报文段长时间滞留,过了一段时间后,客户端重新发送了一个新的连接请求报文段并成功建立连接。此时,滞留的旧报文段可能会到达服务器,如果只进行两次握手,服务器会认为这是一个新的连接请求并建立连接,而实际上客户端可能已经关闭了该连接。通过三次握手,可以让服务器确认客户端对连接的真实意图。 http的四次握手

在这里插入图片描述

第一次挥手:客户端会发送一个FIN报文,报文会指定一个序列号,此时客户端处于FIN-WAIT1状态。第二次挥手:服务端收到FIN报文后,会发送ACK报文,并且把ack等于客户端序列值+1表示已经收到客户端的FIN报文了,此时服务端处于CLOSE-WAIT状态。客户端收到服务端的ACK报文后,进入FIN-WAIT2。第三次挥手:服务端传输完剩余数据后,服务端想断开连接,会发送FIN报文,且指定一个序列号,此时服务端处于LAST-ACK状态。第四次挥手:客户端收到FIN后,发送ACK报文进行应答,seq=服务器的ack,ack=服务器的seq+1,此时客户端处于TIME-WAIT状态,需要过一阵子以确保服务器收到自己的ACK报文进入CLOSE状态,服务器收到ACK报文后,也进入CLOSE状态。

为什么要四次挥手?

为了保证在最后断开的时候,客户端能够发送最后一个ACK报文段能够被服务器接收到。如果客户端在收到服务器给它的断开连接的请求之后,回应完服务器就直接断开连接的话,若服务器没有收到回应就无法进入CLOSE状态,所以客户端要等待两个最长报文段寿命的时间,以便于服务器没有收到请求之后重新发送请求。防止“已失效的连接请求报文”出现在连接中,在释放连接的过程中会有一些无效的滞留报文,这些报文在经过2MSL的时间内就可以发送到目的地,不会滞留在网络中。这样就可以避免在下一个连接中出现上一个连接的滞留报文了。

为什么需要接收方最后等待2MSL 1MSL表示一个1个最长报文段的寿命。 接收方等待最后一次ack+重发的第三次释放连接请求到达发送方的时间



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3